COMETS Analytics support all cohort-specific analyses of the COMETS consortium. This collaborative work is done via the COMETS harmonization group activities. For more information, see the COMETS website. This vignette demonstrates using the COMETS R package from the command line, while
the tutorial demonstrates using COMETS from the GUI. Documentation of the COMETS R package can be found here manual. Each project could create their own vignette to run the analyses.
The required input file should be in excel format with the following 6 sheets:
Complete documentation of the various sheets can be found in the package documentation. An example input file is available HERE.
Only empty cells in any excel sheet become missing values when the R software reads the sheet into a data frame. Any non-numeric value in a cell for a continuous variable will result in an error.
The first step of the analysis is to load in the data with the readCOMETSinput() function.
Input for this function is an Excel spreadsheet, per the description above.
# Retrieve the full path of the input data
dir <- system.file("extdata", package="COMETS", mustWork=TRUE)
csvfile <- file.path(dir, "cometsInputAge.xlsx")
# Read in and process the input data
exmetabdata <- COMETS::readCOMETSinput(csvfile)
## VarMap sheet is read in.
## Metabolites sheet is read in.
## SubjectMetabolites sheet is read in.
## SubjectData sheet is read in.
## Models sheet is read in.
## ModelOptions sheet is read in.
## There are 14 categorical variables.
## Running Integrity Check...
## Joining, by = "hmdb_id"
## Begin testing models in Models sheet...
## Filtering subjects according to the rule(s) age< 70. 836 of 1000 are retained.
## Warning in runModel.addRemVars(rem.obj, vars[oneVal], vars.type, "too few unique
## non-missing values", : The variable(s) female, fasted have been removed from
## adjvars because of: too few unique non-missing values
## Warning in runModel.addRemVars(rem.obj, tmp[rem], varSet, "correlated with
## another predictor", : The variable(s) multivitamin.2 have been removed from
## adjvars because of: correlated with another predictor
## Finished testing models in Models sheet.
To plot some the distribution of variances for each metabolite:
COMETS::plotVar(exmetabdata,titlesize=12)
## Warning: The titlefont attribute is deprecated. Use title = list(font = ...)
## instead.
To plot the distribution of minimum/missing values:
COMETS::plotMinvalues(exmetabdata,titlesize=12)
## Warning: The titlefont attribute is deprecated. Use title = list(font = ...)
## instead.
There are 2 ways to specify your model, batch or interactive. In Batch mode, models are specified in your input file Models sheet. The model information needs to be read in with the function getModelData() and processed so the software knows which models to run. The following call defines the “1 Gender adjusted” model from the Models sheet in the input file to be run.
exmodeldata <- COMETS::getModelData(exmetabdata,modlabel="1 Gender adjusted")
In Interactive mode, models are specified as parameters. The model information needs to be read in with the function getModelData() and processed so the software knows which models to run.
The following call defines the model with age and bmi_grp as the exposure variables, and includes only the subjects with age > 40 and bmi_grp > 2.
exmodeldata2 <- COMETS::getModelData(exmetabdata, modelspec="Interactive",
exposures=c("age","bmi_grp"), where=c("age>40","bmi_grp>2"))
## Filtering subjects according to the rule(s) age>40 AND bmi_grp>2. 279 of 1000 are retained.
The runModel() function is the main function for running a single model, and by default, a correlation analysis is performed. The string “DPP” is a label for the cohort which will appear under the “cohort” column in the output.
excorrdata <- COMETS::runModel(exmodeldata2,exmetabdata,"DPP")
The output of the correlation analysis can then be compiled and output to an Excel file with the following function:
COMETS::OutputListToExcel(filename="DPP_corr.xlsx", excorrdata)
To view the first 3 lines of the correlation analysis output, simply type:
COMETS::showModel(excorrdata,nlines=3)
##
## ModelSummary:
## run cohort runmode model outcomespec exposurespec term
## 1 1 DPP Interactive _1_2_3_benzenetriol_sulfate_2 age
## 2 2 DPP Interactive _1_2_dipalmitoylglycerol age
## 3 3 DPP Interactive _1_2_propanediol age
## nobs message adjvars adjvars.removed adjspec outcome_uid
## 1 279 CHEM100006374
## 2 279 HMDB07098
## 3 279 HMDB01881
## outcome exposure_uid exposure adj_uid
## 1 1,2,3-benzenetriol sulfate (2) age Age at Entry
## 2 DG(16:0/16:0/0:0) age Age at Entry
## 3 Propylene glycol age Age at Entry
## model_function metabolite_name
## 1 correlation 1,2,3-benzenetriol sulfate (2)
## 2 correlation 1,2-dipalmitoylglycerol
## 3 correlation 1,2-propanediol
##
## Effects:
## run outcomespec exposurespec term corr pvalue
## 1 1 _1_2_3_benzenetriol_sulfate_2 age age 0.164624501 0.005846722
## 2 2 _1_2_dipalmitoylglycerol age age 0.068903188 0.251337451
## 3 3 _1_2_propanediol age age 0.001667259 0.977882521
## metabolite_name
## 1 1,2,3-benzenetriol sulfate (2)
## 2 1,2-dipalmitoylglycerol
## 3 1,2-propanediol
##
## Errors_Warnings:
## [1] type object message
## <0 rows> (or 0-length row.names)
## NULL
To display the heatmap of the resulting correlation matrix, use the showheatmap function.
COMETS::showHeatmap(excorrdata)
To display the hierarchical clustering of the resulting correlation matrix, use the showHClust function. This diplay requires at least 2 rows and 2 columns in the correlation matrix.
exmodeldata<-COMETS::getModelData(exmetabdata,modelspec = "Interactive",exposures = c("bmi_grp","age"))
excorrdata <- COMETS::runModel(exmodeldata,exmetabdata,"DPP")
COMETS::showHClust(excorrdata, showticklabels=FALSE)
## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.
## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.
## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.
## Warning: `guides(<scale> = FALSE)` is deprecated. Please use `guides(<scale> =
## "none")` instead.
Results can be written to an output Excel file with the following command:
COMETS::OutputListToExcel("Model1.xlsx", excorrdata)
A stratified correlation analysis can be performed by specifiying stratification variables in the call to getModelData(). If more than one stratification variable is specified, then the strata will be defined by all unique combinations of the stratification variables. The following call will define a model stratified by race_grp.
exmodeldata2 <- COMETS::getModelData(exmetabdata,modelspec="Interactive",
outcomes=c("lactose","lactate"),
exposures=c("age","bmi_grp"),strvars="race_grp")
The stratified correlation analysis is run by calling the runModel() function.
excorrdata2 <- COMETS::runModel(exmodeldata2,exmetabdata,"DPP")
Call getModelData() to define a model which adjusts for age group, has lactose and lactate as outcome variables, and has age and bmi group as the exposure variables.
exmodeldata <- COMETS::getModelData(exmetabdata,modelspec="Interactive", adjvars="age_grp",
outcomes=c("lactose","lactate"), exposures=c("age","bmi_grp"))
To run a linear regression using the lm function, a list of options must be passed into runModel() with the model option set to “lm”.
lm_results <- COMETS::runModel(exmodeldata, exmetabdata, "DPP", op=list(model="lm"))
print(lm_results)
## $ModelSummary
## run cohort runmode model outcomespec exposurespec term wald.pvalue
## 1 1 DPP Interactive lactose age age 0.164512670
## 2 1 DPP Interactive lactose age age_grp 0.202526776
## 3 2 DPP Interactive lactate age age 0.601499033
## 4 2 DPP Interactive lactate age age_grp 0.983098762
## 5 3 DPP Interactive lactose bmi_grp bmi_grp 0.023879815
## 6 3 DPP Interactive lactose bmi_grp age_grp 0.000878276
## 7 4 DPP Interactive lactate bmi_grp bmi_grp 0.001662820
## 8 4 DPP Interactive lactate bmi_grp age_grp 0.620725533
## nobs message adjvars adjvars.removed adjspec outcome_uid
## 1 1000 age_grp.2 age_grp.3 age_grp HMDB00186
## 2 1000 age_grp.2 age_grp.3 age_grp HMDB00186
## 3 1000 age_grp.2 age_grp.3 age_grp HMDB00190
## 4 1000 age_grp.2 age_grp.3 age_grp HMDB00190
## 5 1000 age_grp.2 age_grp.3 age_grp HMDB00186
## 6 1000 age_grp.2 age_grp.3 age_grp HMDB00186
## 7 1000 age_grp.2 age_grp.3 age_grp HMDB00190
## 8 1000 age_grp.2 age_grp.3 age_grp HMDB00190
## outcome exposure_uid exposure adj_uid model_function
## 1 Alpha-Lactose age Age at Entry age_grp.2 age_grp.3 lm
## 2 Alpha-Lactose age Age at Entry age_grp.2 age_grp.3 lm
## 3 L-Lactic acid age Age at Entry age_grp.2 age_grp.3 lm
## 4 L-Lactic acid age Age at Entry age_grp.2 age_grp.3 lm
## 5 Alpha-Lactose bmi_grp bmi_grp age_grp.2 age_grp.3 lm
## 6 Alpha-Lactose bmi_grp bmi_grp age_grp.2 age_grp.3 lm
## 7 L-Lactic acid bmi_grp bmi_grp age_grp.2 age_grp.3 lm
## 8 L-Lactic acid bmi_grp bmi_grp age_grp.2 age_grp.3 lm
## metabolite_name
## 1 lactose
## 2 lactose
## 3 lactate
## 4 lactate
## 5 lactose
## 6 lactose
## 7 lactate
## 8 lactate
##
## $Effects
## run outcomespec exposurespec term estimate std.error statistic
## 1 1 lactose age age 0.034697534 0.024961296 1.3900534
## 2 2 lactate age age -0.002083854 0.003990177 -0.5222460
## 3 3 lactose bmi_grp bmi_grp.2 -0.047905160 0.134163189 -0.3570663
## 4 3 lactose bmi_grp bmi_grp.3 0.360610471 0.145954081 2.4707118
## 5 3 lactose bmi_grp bmi_grp.4 0.420224133 0.577141138 0.7281133
## 6 4 lactate bmi_grp bmi_grp.2 0.034207637 0.021367743 1.6009008
## 7 4 lactate bmi_grp bmi_grp.3 0.080743228 0.023245640 3.4734783
## 8 4 lactate bmi_grp bmi_grp.4 -0.126241151 0.091919426 -1.3733892
## pvalue estimate.lower estimate.upper metabolite_name
## 1 0.1648232433 -0.014225708 0.08362078 lactose
## 2 0.6016151626 -0.009904458 0.00573675 lactate
## 3 0.7211179261 -0.310860179 0.21504986 lactose
## 4 0.0136512756 0.074545728 0.64667521 lactose
## 5 0.4667157218 -0.710951712 1.55139998 lactose
## 6 0.1097166272 -0.007672369 0.07608764 lactate
## 7 0.0005359045 0.035182610 0.12630385 lactate
## 8 0.1699410577 -0.306399914 0.05391761 lactate
##
## $Errors_Warnings
## [1] type object message
## <0 rows> (or 0-length row.names)
##
## attr(,"ptime")
## [1] "Processing time: 0.31 sec"
Run a linear regression using the glm function for the same variables as above. The default family used with glm is “gaussian”, which corresponds to a linear regression. The Effects data frame will be the same as with lm, but the ModelSummary data frame will contain some different columns.
glm_results <- COMETS::runModel(exmodeldata, exmetabdata, "DPP", op=list(model="glm"))
print(all.equal(lm_results$Effects, glm_results$Effects))
## [1] TRUE
print(glm_results$ModelSummary)
## run cohort runmode model outcomespec exposurespec converged term
## 1 1 DPP Interactive lactose age 1 age
## 2 1 DPP Interactive lactose age 1 age_grp
## 3 2 DPP Interactive lactate age 1 age
## 4 2 DPP Interactive lactate age 1 age_grp
## 5 3 DPP Interactive lactose bmi_grp 1 bmi_grp
## 6 3 DPP Interactive lactose bmi_grp 1 age_grp
## 7 4 DPP Interactive lactate bmi_grp 1 bmi_grp
## 8 4 DPP Interactive lactate bmi_grp 1 age_grp
## wald.pvalue nobs message adjvars adjvars.removed adjspec
## 1 0.164512670 1000 age_grp.2 age_grp.3 age_grp
## 2 0.202526776 1000 age_grp.2 age_grp.3 age_grp
## 3 0.601499033 1000 age_grp.2 age_grp.3 age_grp
## 4 0.983098762 1000 age_grp.2 age_grp.3 age_grp
## 5 0.023879815 1000 age_grp.2 age_grp.3 age_grp
## 6 0.000878276 1000 age_grp.2 age_grp.3 age_grp
## 7 0.001662820 1000 age_grp.2 age_grp.3 age_grp
## 8 0.620725533 1000 age_grp.2 age_grp.3 age_grp
## outcome_uid outcome exposure_uid exposure adj_uid
## 1 HMDB00186 Alpha-Lactose age Age at Entry age_grp.2 age_grp.3
## 2 HMDB00186 Alpha-Lactose age Age at Entry age_grp.2 age_grp.3
## 3 HMDB00190 L-Lactic acid age Age at Entry age_grp.2 age_grp.3
## 4 HMDB00190 L-Lactic acid age Age at Entry age_grp.2 age_grp.3
## 5 HMDB00186 Alpha-Lactose bmi_grp bmi_grp age_grp.2 age_grp.3
## 6 HMDB00186 Alpha-Lactose bmi_grp bmi_grp age_grp.2 age_grp.3
## 7 HMDB00190 L-Lactic acid bmi_grp bmi_grp age_grp.2 age_grp.3
## 8 HMDB00190 L-Lactic acid bmi_grp bmi_grp age_grp.2 age_grp.3
## model_function metabolite_name
## 1 glm lactose
## 2 glm lactose
## 3 glm lactate
## 4 glm lactate
## 5 glm lactose
## 6 glm lactose
## 7 glm lactate
## 8 glm lactate
Call getModelData() to define a model which adjusts for age group, has nested_case as the outcome variable, and has lactose and lactate as the exposure variables. The variable nested_case must be a binary 0-1 variable.
exmodeldata <- COMETS::getModelData(exmetabdata,modelspec="Interactive", adjvars="age_grp",
outcomes="nested_case", exposures=c("lactose","lactate"))
To run a logistic regression, the list of options op must also include a model.options list with family set to “binomial”.
op <- list(model="glm", model.options=list(family="binomial"))
glm_results <- COMETS::runModel(exmodeldata, exmetabdata, "DPP", op=op)
print(glm_results)
## $ModelSummary
## run cohort runmode model outcomespec exposurespec converged term
## 1 1 DPP Interactive nested_case lactose 1 lactose
## 2 1 DPP Interactive nested_case lactose 1 age_grp
## 3 2 DPP Interactive nested_case lactate 1 lactate
## 4 2 DPP Interactive nested_case lactate 1 age_grp
## wald.pvalue nobs message adjvars adjvars.removed adjspec
## 1 0.51856182 1000 age_grp.2 age_grp.3 age_grp
## 2 0.71229325 1000 age_grp.2 age_grp.3 age_grp
## 3 0.01003264 1000 age_grp.2 age_grp.3 age_grp
## 4 0.63652620 1000 age_grp.2 age_grp.3 age_grp
## outcome_uid outcome exposure_uid exposure adj_uid
## 1 nested_case nested_case HMDB00186 Alpha-Lactose age_grp.2 age_grp.3
## 2 nested_case nested_case HMDB00186 Alpha-Lactose age_grp.2 age_grp.3
## 3 nested_case nested_case HMDB00190 L-Lactic acid age_grp.2 age_grp.3
## 4 nested_case nested_case HMDB00190 L-Lactic acid age_grp.2 age_grp.3
## model_function metabolite_name
## 1 glm <NA>
## 2 glm <NA>
## 3 glm <NA>
## 4 glm <NA>
##
## $Effects
## run outcomespec exposurespec term estimate std.error statistic
## 1 1 nested_case lactose lactose 0.02268456 0.03513914 0.6455639
## 2 2 nested_case lactate lactate 0.57214513 0.22221799 2.5747022
## pvalue exp.estimate exp.std.error estimate.lower estimate.upper
## 1 0.51856182 1.022944 0.03594537 -0.04618689 0.09155601
## 2 0.01003264 1.772064 0.39378456 0.13660588 1.00768438
## exp.estimate.lower exp.estimate.upper metabolite_name
## 1 0.9548635 1.095878 <NA>
## 2 1.1463763 2.739251 <NA>
##
## $Errors_Warnings
## [1] type object message
## <0 rows> (or 0-length row.names)
##
## attr(,"ptime")
## [1] "Processing time: 0.28 sec"
Call getModelData() to define a model which adjusts for age group, has n_visits as the outcome variable, and has lactose and lactate as the exposure variables. The variable n_visits must be a non-negative integer valued variable.
exmodeldata <- COMETS::getModelData(exmetabdata,modelspec="Interactive", adjvars="age_grp",
outcomes="n_visits", exposures=c("lactose","lactate"))
To run a Poisson regression, the list of options op must also include a model.options list with family set to “poisson”.
op <- list(model="glm", model.options=list(family="poisson"))
poisson_results <- COMETS::runModel(exmodeldata, exmetabdata, "DPP", op=op)
print(poisson_results)
## $ModelSummary
## run cohort runmode model outcomespec exposurespec converged term
## 1 1 DPP Interactive n_visits lactose 1 lactose
## 2 1 DPP Interactive n_visits lactose 1 age_grp
## 3 2 DPP Interactive n_visits lactate 1 lactate
## 4 2 DPP Interactive n_visits lactate 1 age_grp
## wald.pvalue nobs message adjvars adjvars.removed adjspec
## 1 0.6105400 1000 age_grp.2 age_grp.3 age_grp
## 2 0.3528081 1000 age_grp.2 age_grp.3 age_grp
## 3 0.8271571 1000 age_grp.2 age_grp.3 age_grp
## 4 0.3719447 1000 age_grp.2 age_grp.3 age_grp
## outcome_uid outcome exposure_uid exposure adj_uid
## 1 n_visits n_visits HMDB00186 Alpha-Lactose age_grp.2 age_grp.3
## 2 n_visits n_visits HMDB00186 Alpha-Lactose age_grp.2 age_grp.3
## 3 n_visits n_visits HMDB00190 L-Lactic acid age_grp.2 age_grp.3
## 4 n_visits n_visits HMDB00190 L-Lactic acid age_grp.2 age_grp.3
## model_function metabolite_name
## 1 glm <NA>
## 2 glm <NA>
## 3 glm <NA>
## 4 glm <NA>
##
## $Effects
## run outcomespec exposurespec term estimate std.error statistic
## 1 1 n_visits lactose lactose 0.00624383 0.01225956 0.5093028
## 2 2 n_visits lactate lactate 0.01679890 0.07693599 0.2183491
## pvalue estimate.lower estimate.upper metabolite_name
## 1 0.6105400 -0.01778447 0.03027213 <NA>
## 2 0.8271571 -0.13399287 0.16759068 <NA>
##
## $Errors_Warnings
## [1] type object message
## <0 rows> (or 0-length row.names)
##
## attr(,"ptime")
## [1] "Processing time: 0.29 sec"
All models desginated in the input file can be run with one command, and individual output Excel files or correlation results will be written in the current directory by default. The function returns a list of objects.
allresults <- COMETS::runAllModels(exmetabdata,writeTofile=TRUE)
Older Excel files that do not have a ModelOptions sheet can still be used with newer versions of the COMETS R package. The runCorr function is kept in the package for backwards compatibility and will return a single data frame as in the older versions of COMETS. Below is a comparison of the output from a correlation analysis using runCorr and runModel.
exmodeldata <- COMETS::getModelData(exmetabdata,modelspec="Interactive", adjvars="age_grp",
outcomes=c("lactose","lactate"), exposures=c("age","bmi_grp"))
old_corr <- COMETS::runCorr(exmodeldata,exmetabdata,"DPP")
new_corr <- COMETS::runModel(exmodeldata,exmetabdata,"DPP")
print(old_corr)
## cohort spec model outcomespec exposurespec corr n
## 1 DPP Interactive lactose age 0.043565539 1000
## 2 DPP Interactive lactate age -0.019428709 1000
## 3 DPP Interactive lactose bmi_grp.2 -0.008776075 1000
## 4 DPP Interactive lactose bmi_grp.3 0.079837393 1000
## 5 DPP Interactive lactose bmi_grp.4 0.025205292 1000
## 6 DPP Interactive lactate bmi_grp.2 0.046036650 1000
## 7 DPP Interactive lactate bmi_grp.3 0.105913287 1000
## 8 DPP Interactive lactate bmi_grp.4 -0.052345953 1000
## pvalue adjspec adjvars outcome_uid
## 1 0.1690653866 age_grp.2 age_grp.3 age_grp.2 age_grp.3 HMDB00186
## 2 0.5398342300 age_grp.2 age_grp.3 age_grp.2 age_grp.3 HMDB00190
## 3 0.7820674786 age_grp.2 age_grp.3 age_grp.2 age_grp.3 HMDB00186
## 4 0.0117192950 age_grp.2 age_grp.3 age_grp.2 age_grp.3 HMDB00186
## 5 0.4268503272 age_grp.2 age_grp.3 age_grp.2 age_grp.3 HMDB00186
## 6 0.1465467996 age_grp.2 age_grp.3 age_grp.2 age_grp.3 HMDB00190
## 7 0.0008145877 age_grp.2 age_grp.3 age_grp.2 age_grp.3 HMDB00190
## 8 0.0987247080 age_grp.2 age_grp.3 age_grp.2 age_grp.3 HMDB00190
## outcome exposure_uid exposure adj_uid
## 1 Alpha-Lactose age Age at Entry age_grp.2 age_grp.3
## 2 L-Lactic acid age Age at Entry age_grp.2 age_grp.3
## 3 Alpha-Lactose bmi_grp.2 bmi_grp.2 age_grp.2 age_grp.3
## 4 Alpha-Lactose bmi_grp.3 bmi_grp.3 age_grp.2 age_grp.3
## 5 Alpha-Lactose bmi_grp.4 bmi_grp.4 age_grp.2 age_grp.3
## 6 L-Lactic acid bmi_grp.2 bmi_grp.2 age_grp.2 age_grp.3
## 7 L-Lactic acid bmi_grp.3 bmi_grp.3 age_grp.2 age_grp.3
## 8 L-Lactic acid bmi_grp.4 bmi_grp.4 age_grp.2 age_grp.3
## adj
## 1 age_grp.2 age_grp.3
## 2 age_grp.2 age_grp.3
## 3 age_grp.2 age_grp.3
## 4 age_grp.2 age_grp.3
## 5 age_grp.2 age_grp.3
## 6 age_grp.2 age_grp.3
## 7 age_grp.2 age_grp.3
## 8 age_grp.2 age_grp.3
print(new_corr)
## $ModelSummary
## run cohort runmode model outcomespec exposurespec term nobs message
## 1 1 DPP Interactive lactose age 1000
## 2 2 DPP Interactive lactate age 1000
## 3 3 DPP Interactive lactose bmi_grp 1000
## 4 4 DPP Interactive lactate bmi_grp 1000
## adjvars adjvars.removed adjspec outcome_uid outcome
## 1 age_grp.2 age_grp.3 age_grp HMDB00186 Alpha-Lactose
## 2 age_grp.2 age_grp.3 age_grp HMDB00190 L-Lactic acid
## 3 age_grp.2 age_grp.3 age_grp HMDB00186 Alpha-Lactose
## 4 age_grp.2 age_grp.3 age_grp HMDB00190 L-Lactic acid
## exposure_uid exposure adj_uid model_function metabolite_name
## 1 age Age at Entry age_grp.2 age_grp.3 correlation lactose
## 2 age Age at Entry age_grp.2 age_grp.3 correlation lactate
## 3 bmi_grp bmi_grp age_grp.2 age_grp.3 correlation lactose
## 4 bmi_grp bmi_grp age_grp.2 age_grp.3 correlation lactate
##
## $Effects
## run outcomespec exposurespec term corr pvalue
## 1 1 lactose age age 0.043565539 0.1690653866
## 2 2 lactate age age -0.019428709 0.5398342300
## 3 3 lactose bmi_grp bmi_grp.2 -0.008776075 0.7820674786
## 4 3 lactose bmi_grp bmi_grp.3 0.079837393 0.0117192950
## 5 3 lactose bmi_grp bmi_grp.4 0.025205292 0.4268503272
## 6 4 lactate bmi_grp bmi_grp.2 0.046036650 0.1465467996
## 7 4 lactate bmi_grp bmi_grp.3 0.105913287 0.0008145877
## 8 4 lactate bmi_grp bmi_grp.4 -0.052345953 0.0987247080
## metabolite_name
## 1 lactose
## 2 lactate
## 3 lactose
## 4 lactose
## 5 lactose
## 6 lactate
## 7 lactate
## 8 lactate
##
## $Errors_Warnings
## [1] type object message
## <0 rows> (or 0-length row.names)
##
## attr(,"ptime")
## [1] "Processing time: 0.3 sec"
sessionInfo()
## R version 4.1.0 (2021-05-18)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 19042)
##
## Matrix products: default
##
## locale:
## [1] LC_COLLATE=C
## [2] LC_CTYPE=English_United States.1252
## [3] LC_MONETARY=English_United States.1252
## [4] LC_NUMERIC=C
## [5] LC_TIME=English_United States.1252
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## loaded via a namespace (and not attached):
## [1] nlme_3.1-152 lubridate_1.7.10 webshot_0.5.2
## [4] RColorBrewer_1.1-2 httr_1.4.2 tools_4.1.0
## [7] backports_1.2.1 bslib_0.2.5.1 utf8_1.2.2
## [10] R6_2.5.0 ISwR_2.0-8 rpart_4.1-15
## [13] COMETS_1.9.9.9 DBI_1.1.1 lazyeval_0.2.2
## [16] colorspace_2.0-2 nnet_7.3-16 withr_2.4.2
## [19] tidyselect_1.1.1 gridExtra_2.3 mnormt_2.0.2
## [22] compiler_4.1.0 TSP_1.1-10 plotly_4.9.4.1
## [25] labeling_0.4.2 sass_0.4.0 scales_1.1.1
## [28] psych_2.1.6 stringr_1.4.0 digest_0.6.27
## [31] rmarkdown_2.8 pkgconfig_2.0.3 htmltools_0.5.1.1
## [34] htmlwidgets_1.5.3 rlang_0.4.11 readxl_1.3.1
## [37] jquerylib_0.1.4 generics_0.1.0 farver_2.1.0
## [40] jsonlite_1.7.2 crosstalk_1.1.1 dendextend_1.15.1
## [43] dplyr_1.0.7 ModelMetrics_1.2.2.2 magrittr_2.0.1
## [46] Matrix_1.3-3 Rcpp_1.0.7 munsell_0.5.0
## [49] fansi_0.5.0 viridis_0.6.1 lifecycle_1.0.0
## [52] stringi_1.7.3 pROC_1.17.0.1 yaml_2.2.1
## [55] MASS_7.3-54 plyr_1.8.6 recipes_0.1.16
## [58] grid_4.1.0 parallel_4.1.0 ppcor_1.1
## [61] crayon_1.4.1 lattice_0.20-44 splines_4.1.0
## [64] tmvnsim_1.0-2 knitr_1.33 pillar_1.6.1
## [67] corpcor_1.6.9 reshape2_1.4.4 codetools_0.2-18
## [70] stats4_4.1.0 glue_1.4.2 evaluate_0.14
## [73] data.table_1.14.0 vctrs_0.3.8 foreach_1.5.1
## [76] cellranger_1.1.0 gtable_0.3.0 purrr_0.3.4
## [79] tidyr_1.1.3 heatmaply_1.2.1 assertthat_0.2.1
## [82] ggplot2_3.3.5 xfun_0.24 gower_0.2.2
## [85] prodlim_2019.11.13 broom_0.7.9 class_7.3-19
## [88] survival_3.2-11 viridisLite_0.4.0 timeDate_3043.102
## [91] seriation_1.3.0 tibble_3.1.3 iterators_1.0.13
## [94] registry_0.5-1 lava_1.6.9 ellipsis_0.3.2
## [97] caret_6.0-88 subselect_0.15.2 ipred_0.9-11